<?php

class Application_Model_Racks extends Sgit_Model
{  
    protected $_name = 'racks';
    protected $_primary = 'id';


    public function getRack($id)
    {
        return $this->getRacks(array(), $id);
    }


    public function getRacks($values = array(), $id = null)
    {
        
        $select = $this->getAdapter()->select();
     
        $select->from(array($this->_name));
        $select->joinLeft('proyectos', 'proyectos.id = racks.id_proyecto', array('proyecto'=>'nombre'));
        $select->joinLeft('salas', 'salas.id = racks.id_sala', array('sala'=>'nombre'));
       
       
        if (!is_null($id))
        {
            $select->where("racks.id= ?", $id);

        } else
        {
            if ($values['id_zona'])
                $select->where('racks.id_zona= ?', $values['id_zona']);
            if ($values['id_proyecto'])
                $select->where('racks.id_proyecto= ?', $values['id_proyecto']);
            if ($values['id_sala'])
                $select->where('racks.id_sala= ?', $values['id_sala']);

        }


        $rows = $this->getAdapter()->fetchAll($select);

        $activos=new Application_Model_RacksActivos();
        foreach($rows as $k => $v)
        {
            $rows[$k]['status']=($rows[$k]['id_proyecto']) ? 'En uso' : 'Libre';
            $rows[$k]['activos']=$activos->getActivos(array('id_rack'=>$v['id']));
         
            foreach($rows[$k]['activos'] as $w)
            {
                $rows[$k]['u_ocupadas']+=$w['num_u'];
                $rows[$k]['potencia_ocupada']+=$w['potencia_maxima'];
            }
            
            $rows[$k]['u_libre']=$rows[$k]['capacidad_u']-$rows[$k]['u_ocupadas'];
            $rows[$k]['potencia_libre']=$rows[$k]['capacidad_potencia']-$rows[$k]['potencia_ocupada'];
            
        }


        if (is_null($id))
            return $rows;
        else
            return $rows[0];


    }
    
} 




